import request from '@/config/axios'

// AI 聊天角色 VO
export interface ChatRoleVO {
  id: number // 角色编号
  modelId: number // 关联模型
  name: string // 角色名称
  avatar: string // 角色头像
  category: string // 角色类别
  description: string // 角色描述
  systemMessage: string // 角色设定
  knowledgeIds: number[] // 引用知识库
  toolIds: number[] // 引用工具
  publicStatus: boolean // 是否公开
  sort: number // 排序
  status: number // 状态
  modelName: string // 关联模型名称
}

// AI 聊天角色 分页请求 vo
export interface ChatRolePageReqVO {
  name?: string // 角色名称
  category?: string // 角色类别
  publicStatus: boolean // 是否公开
  pageNo: number // 是否公开
  pageSize: number // 是否公开
}

// AI 聊天角色 API
export const ChatRoleApi = {
  // 获取AI 聊天角色分页
  getChatRolePage: async (params: PageParam) => {
    return await request.get({ url: `/ai/chat-role/page`, params })
  },

  // 获取AI 聊天角色详情
  getChatRole: async (id: number) => {
    return await request.get({ url: `/ai/chat-role/get`, params: { id } })
  },

  // 新增AI 聊天角色
  createChatRole: async (data: ChatRoleVO) => {
    return await request.post({ url: `/ai/chat-role/create`, data })
  },

  // 修改AI 聊天角色
  updateChatRole: async (data: ChatRoleVO) => {
    return await request.post({ url: `/ai/chat-role/update`, data })
  },

  // 删除AI 聊天角色
  deleteChatRole: async (id: number) => {
    return await request.delete({ url: `/ai/chat-role/delete`, params: { id } })
  },

  // 获取角色分类
  getCategoryList: async (status?: number) => {
    return await request.get({ url: `/ai/chat-role/category-list`, params: { status } })
  },

  // 获取 my role
  getMyPage: async (params: ChatRolePageReqVO) => {
    return await request.get({ url: `/ai/chat-role/my-page`, params })
  },

  // 创建角色
  createMy: async (data: ChatRoleVO) => {
    return await request.post({ url: `/ai/chat-role/create-my`, data})
  },

  // 更新角色
  updateMy: async (data: ChatRoleVO) => {
    return await request.put({ url: `/ai/chat-role/update-my`, data})
  },

  // 删除角色 my
  deleteMy: async (id: number) => {
    return await request.delete({ url: `/ai/chat-role/delete-my`, params: { id } })
  },
}
